home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - DOS Part 1 / DOS002.dsk / ANY BASE NUMBER CONVERSION.bas < prev    next >
BASIC Source File  |  2012-02-16  |  1KB  |  42 lines

  1. 50  HOME 
  2. 100  PRINT "*** BASE CONVERSION ROUTINE ***"
  3. 110  REM WRITTEN BY EASTON BEYMER
  4. 150  PRINT " "
  5. 200  INPUT "INPUT BASE: ";BI%
  6. 210  IF BI% <2  OR BI% >16  THEN 600
  7. 220  INPUT "INPUT NUMBER: ";NI$
  8. 300  INPUT "OUTPUT BASE: ";BO%
  9. 310  IF BO% <2  OR BO% >16  THEN 600
  10. 400  GOSUB 10000
  11. 410  PRINT "OUTPUT NUMBER=";NO$
  12. 500  GOTO 150
  13. 600  PRINT "BASE NOT IN RANGE OF 2 TO 16": GOTO 150
  14. 10000  REM  BASE CONVERSION SUBROUTINE
  15. 10100  REM  CONVERT TO DECIMAL 
  16. 10150 L% =  LEN(NI$)
  17. 10200 DEC = 0
  18. 10300 PWR% = 0
  19. 10400  FOR J = L% TO 1  STEP  -1
  20. 10500 K% =  ASC( MID$ (NI$,J,1))
  21. 10700  IF K% >64  THEN K% = K% -7
  22. 10800 K% = K% -48
  23. 10810  IF K% <BI%  AND K% > -1  THEN  GOTO 10900
  24. 10820  PRINT "INVALID INPUT FOR BASE ";BI%
  25. 10840 NO$ = "????"
  26. 10850  RETURN 
  27. 10900 DEC = DEC +K% *BI% ^PWR%
  28. 11000 PWR% = PWR% +1
  29. 11100  NEXT J
  30. 11110  REM CONVERT DECIMAL TO BASE #
  31. 11120 H$ = "0123456789ABCDEF"
  32. 11130 NO$ = ""
  33. 11200 PWR% =  LOG(DEC)/ LOG(BO%)
  34. 11300  FOR J = PWR% TO 0  STEP  -1
  35. 11310 XX =  INT(BO% ^J)
  36. 11320 CH% = DEC/XX
  37. 11500 NO$ = NO$ + MID$ (H$,CH% +1,1)
  38. 11600 DEC =  INT(DEC -CH% *XX)
  39. 11700  NEXT J
  40. 11800  RETURN 
  41. 11900  END 
  42. 19999  REM  THIS PROGRAM CAME FROM NEWTON'S TREE